package kuonjisai;

public class J16_OOP2 {
	
	// 메서드method
	// 클래스의 개게가 할 수 있는 행위를 정의
	// 메서드에는 선언부와 몸체가 있음
	
	// 접근제한자 반환유형 메서드이름 ( 인수 목록 ) {
	//		메서드 몸체
	// }
	// 메서드 선언부는 반환유형, 메서드이름, 인수목록임
	// 메서드 선언부를 메서드 서명singnare이라고도 함
	
	// 특별한 메서드인 main은 프로그램의 진입점을 제공
	// 일반적으로 프로그램은 수 많은 클래스로 구성됨
	// 그 중 주가 되는 메서드가 하나 있어야 하는데
	// 그것이 바로 main 메서드임
	
	public static void main(String[] args) {
		
		Students taehee = new Students();
		taehee.kor = 20;
		taehee.eng = 30;
		taehee.mat = 5;		
		taehee.showSungJuk();
		

		
		
	} //main

} //class

class Students {
	int stdno;
	int kor;
	int eng; 
	int mat; 
	
	// 총점 구하기
	int computeTotal(){
		return kor + eng + mat;
		
	}
	
	// 평균 구하기
	float computeAverage() {
		return (float) this.computeTotal() / 3;
	}
	
	// 학점 구하기
	void computeGrade() {
		switch ( (int) this.computeAverage() / 10 ) {
		case 10: case 9: {
			System.out.println( "수" ); break;
		}
		case 8: {
			System.out.println( "우" ); break;
		}
		case 7: {
			System.out.println( "미" ); break;
		}
		case 6: {
			System.out.println( "양" ); break;
		}
		default : {
			System.out.println( "가" );
		}
		} // switch
	} // computeGrade
	
		// 모든 결과 출력
		
	void showSungJuk() {
		System.out.println( this.computeTotal() );
		System.out.println( this.computeAverage() );
		this.computeGrade();
	} // showSungJuk
		
	
} // Students


